import { validationResult, checkSchema, Schema } from 'express-validator';
import type { Request, Response } from 'express';


async function validate(req: Request, res: Response, schema: Schema<any>) {
  // 根据传入 schema 创建校验规则
  const validations = checkSchema(schema);

  // 运行所有校验规则
  await Promise.all(validations.map(rule => rule.run(req)));

  // 收集结果
  const errors = validationResult(req);
  if (!errors.isEmpty()) {
    // 可以在这里统一格式化输出
    return errors.array()
  }

  return null; // 表示验证通过
}

export default validate;
